fix: circular ref guard - #3033
Merged
Merged
Conversation
Code Coverage OverviewLanguages: C# C# / code-coverage/dotnetThe overall coverage in commit 419868b in the Show a code coverage summary of the most impacted files.
Updated |
…/OpenAPI.NET into fix/circular-ref-guard
|
Vincent Biret (baywet)
approved these changes
Aug 19, 2026
Vincent Biret (baywet)
added a commit
that referenced
this pull request
Aug 19, 2026
* fix: circular ref guard (#3033) * fix: harden yaml parsing * fix tests and nesting behavior on streams with SharpYaml update * CodeQL fixes * update benchmarks * fix: circular ref guard * update benchmarks * fix: harden yaml parsing * fix tests and nesting behavior on streams with SharpYaml update * CodeQL fixes * update benchmarks * fix: circular ref guard * update benchmarks * codeql updates Signed-off-by: Vincent Biret <vibiret@microsoft.com> * chore: removes invalid property test due to bad cherry-pick Signed-off-by: Vincent Biret <vibiret@microsoft.com> * chore: refreshes performance reports --------- Signed-off-by: Vincent Biret <vibiret@microsoft.com> Co-authored-by: Gavin Barron <gavinbarron@microsoft.com>
This was referenced Sep 21, 2026
Bump Microsoft.AspNetCore.Mvc.Testing and 2 others
calebcwells/dotnet-minimal-apis-vs-controllers#15
Open
Closed
Closed
BlagoCuljak
added a commit
to Aictiq/Aictiq
that referenced
this pull request
Sep 24, 2026
Updated [Aspire.Hosting.JavaScript](https://github.com/microsoft/aspire) from 13.5.3 to 13.5.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.JavaScript's releases](https://github.com/microsoft/aspire/releases)._ ## 13.5.4 ## What's New in Aspire 13.5.4 Patch release for Aspire 13.5 that fixes Kafka health-check resource leaks, DevTunnel errors with automatically selected regions, misleading Azure emulator dashboard entries, and unintended changes to generated starter apps, plus Homebrew compatibility and Radius API diagnostic updates. ### 🐛 Fixes - 📨 **Kafka health checks leaked producers and polling threads** — Each AppHost health-check execution created a new Kafka producer without disposing it, accumulating background threads over time. Health checks now reuse a producer per Kafka resource and dispose it with the AppHost, while keeping multiple Kafka resources independently configured. Fixes [#20091](https://github.com/microsoft/aspire/issues/20091). ([#20094](https://github.com/microsoft/aspire/pull/20094), backport of [#20092](https://github.com/microsoft/aspire/pull/20092), @davidfowl) - 🌐 **DevTunnels could fail when the region was selected automatically** — Tunnel setup and health checks now use the cluster-qualified tunnel ID returned by the DevTunnel CLI for port operations and access queries. This fixes failures when a bare tunnel ID cannot be resolved for those operations. Regression introduced in 13.3. Fixes [#18790](https://github.com/microsoft/aspire/issues/18790). ([#19853](https://github.com/microsoft/aspire/pull/19853), backport of [#19230](https://github.com/microsoft/aspire/pull/19230), @Vladipz) - ☁️ **Emulator-only AppHosts showed an unused Azure environment** — The dashboard now hides the `azure-environment` resource when no Azure resources require cloud provisioning, instead of leaving it visible in **Not started**. It remains visible for apps that combine local emulators with resources requiring Azure provisioning. No AppHost changes are needed. Fixes [#19617](https://github.com/microsoft/aspire/issues/19617). ([#19998](https://github.com/microsoft/aspire/pull/19998), backport of [#19843](https://github.com/microsoft/aspire/pull/19843), @eerhardt) - 🧩 **Starter app generation could alter unrelated JavaScript values** — Dynamic port replacement could also replace matching numeric literals in bundled JavaScript, including Bootstrap timing values. Port substitutions are now restricted to `localhost:` URLs, preserving the original library files while still configuring the requested ports. Fixes [#20030](https://github.com/microsoft/aspire/issues/20030). ([#20110](https://github.com/microsoft/aspire/pull/20110), backport of [#20031](https://github.com/microsoft/aspire/pull/20031), @bart-vmware, @JamesNK) - 🍎 **Updated the Aspire Homebrew cask for Homebrew 6.x** — Replaced deprecated cask URL and post-install syntax with the supported equivalents, resolving compatibility issues with current Homebrew while preserving install-channel metadata. ([#20119](https://github.com/microsoft/aspire/pull/20119), backport of [#19965](https://github.com/microsoft/aspire/pull/19965), @askpt, @joperezr) - 🧪 **Radius cloud-provider callback interfaces now carry the experimental diagnostic** — `IAwsRadiusProviderBuilder` and `IAzureRadiusProviderBuilder` are now marked with `ASPIRERADIUS003`, matching the existing `WithAwsProvider` and `WithAzureProvider` methods. Code referencing these interfaces directly must now acknowledge the same experimental API diagnostic. ([#19874](https://github.com/microsoft/aspire/pull/19874), @sebastienros) --- *Full Changelog: [v13.5.3...v13.5.4](https://github.com/microsoft/aspire/compare/v13.5.3...v13.5.4)* *Full commit: [9c1b401dd67746739044f68959cbf4d3d7af93a6](https://github.com/microsoft/aspire/commit/9c1b401dd67746739044f68959cbf4d3d7af93a6)* Commits viewable in [compare view](https://github.com/microsoft/aspire/compare/v13.5.3...v13.5.4). </details> Updated [Aspire.Hosting.PostgreSQL](https://github.com/microsoft/aspire) from 13.5.3 to 13.5.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Hosting.PostgreSQL's releases](https://github.com/microsoft/aspire/releases)._ ## 13.5.4 ## What's New in Aspire 13.5.4 Patch release for Aspire 13.5 that fixes Kafka health-check resource leaks, DevTunnel errors with automatically selected regions, misleading Azure emulator dashboard entries, and unintended changes to generated starter apps, plus Homebrew compatibility and Radius API diagnostic updates. ### 🐛 Fixes - 📨 **Kafka health checks leaked producers and polling threads** — Each AppHost health-check execution created a new Kafka producer without disposing it, accumulating background threads over time. Health checks now reuse a producer per Kafka resource and dispose it with the AppHost, while keeping multiple Kafka resources independently configured. Fixes [#20091](https://github.com/microsoft/aspire/issues/20091). ([#20094](https://github.com/microsoft/aspire/pull/20094), backport of [#20092](https://github.com/microsoft/aspire/pull/20092), @davidfowl) - 🌐 **DevTunnels could fail when the region was selected automatically** — Tunnel setup and health checks now use the cluster-qualified tunnel ID returned by the DevTunnel CLI for port operations and access queries. This fixes failures when a bare tunnel ID cannot be resolved for those operations. Regression introduced in 13.3. Fixes [#18790](https://github.com/microsoft/aspire/issues/18790). ([#19853](https://github.com/microsoft/aspire/pull/19853), backport of [#19230](https://github.com/microsoft/aspire/pull/19230), @Vladipz) - ☁️ **Emulator-only AppHosts showed an unused Azure environment** — The dashboard now hides the `azure-environment` resource when no Azure resources require cloud provisioning, instead of leaving it visible in **Not started**. It remains visible for apps that combine local emulators with resources requiring Azure provisioning. No AppHost changes are needed. Fixes [#19617](https://github.com/microsoft/aspire/issues/19617). ([#19998](https://github.com/microsoft/aspire/pull/19998), backport of [#19843](https://github.com/microsoft/aspire/pull/19843), @eerhardt) - 🧩 **Starter app generation could alter unrelated JavaScript values** — Dynamic port replacement could also replace matching numeric literals in bundled JavaScript, including Bootstrap timing values. Port substitutions are now restricted to `localhost:` URLs, preserving the original library files while still configuring the requested ports. Fixes [#20030](https://github.com/microsoft/aspire/issues/20030). ([#20110](https://github.com/microsoft/aspire/pull/20110), backport of [#20031](https://github.com/microsoft/aspire/pull/20031), @bart-vmware, @JamesNK) - 🍎 **Updated the Aspire Homebrew cask for Homebrew 6.x** — Replaced deprecated cask URL and post-install syntax with the supported equivalents, resolving compatibility issues with current Homebrew while preserving install-channel metadata. ([#20119](https://github.com/microsoft/aspire/pull/20119), backport of [#19965](https://github.com/microsoft/aspire/pull/19965), @askpt, @joperezr) - 🧪 **Radius cloud-provider callback interfaces now carry the experimental diagnostic** — `IAwsRadiusProviderBuilder` and `IAzureRadiusProviderBuilder` are now marked with `ASPIRERADIUS003`, matching the existing `WithAwsProvider` and `WithAzureProvider` methods. Code referencing these interfaces directly must now acknowledge the same experimental API diagnostic. ([#19874](https://github.com/microsoft/aspire/pull/19874), @sebastienros) --- *Full Changelog: [v13.5.3...v13.5.4](https://github.com/microsoft/aspire/compare/v13.5.3...v13.5.4)* *Full commit: [9c1b401dd67746739044f68959cbf4d3d7af93a6](https://github.com/microsoft/aspire/commit/9c1b401dd67746739044f68959cbf4d3d7af93a6)* Commits viewable in [compare view](https://github.com/microsoft/aspire/compare/v13.5.3...v13.5.4). </details> Updated [Aspire.Npgsql](https://github.com/microsoft/aspire) from 13.5.3 to 13.5.4. <details> <summary>Release notes</summary> _Sourced from [Aspire.Npgsql's releases](https://github.com/microsoft/aspire/releases)._ ## 13.5.4 ## What's New in Aspire 13.5.4 Patch release for Aspire 13.5 that fixes Kafka health-check resource leaks, DevTunnel errors with automatically selected regions, misleading Azure emulator dashboard entries, and unintended changes to generated starter apps, plus Homebrew compatibility and Radius API diagnostic updates. ### 🐛 Fixes - 📨 **Kafka health checks leaked producers and polling threads** — Each AppHost health-check execution created a new Kafka producer without disposing it, accumulating background threads over time. Health checks now reuse a producer per Kafka resource and dispose it with the AppHost, while keeping multiple Kafka resources independently configured. Fixes [#20091](https://github.com/microsoft/aspire/issues/20091). ([#20094](https://github.com/microsoft/aspire/pull/20094), backport of [#20092](https://github.com/microsoft/aspire/pull/20092), @davidfowl) - 🌐 **DevTunnels could fail when the region was selected automatically** — Tunnel setup and health checks now use the cluster-qualified tunnel ID returned by the DevTunnel CLI for port operations and access queries. This fixes failures when a bare tunnel ID cannot be resolved for those operations. Regression introduced in 13.3. Fixes [#18790](https://github.com/microsoft/aspire/issues/18790). ([#19853](https://github.com/microsoft/aspire/pull/19853), backport of [#19230](https://github.com/microsoft/aspire/pull/19230), @Vladipz) - ☁️ **Emulator-only AppHosts showed an unused Azure environment** — The dashboard now hides the `azure-environment` resource when no Azure resources require cloud provisioning, instead of leaving it visible in **Not started**. It remains visible for apps that combine local emulators with resources requiring Azure provisioning. No AppHost changes are needed. Fixes [#19617](https://github.com/microsoft/aspire/issues/19617). ([#19998](https://github.com/microsoft/aspire/pull/19998), backport of [#19843](https://github.com/microsoft/aspire/pull/19843), @eerhardt) - 🧩 **Starter app generation could alter unrelated JavaScript values** — Dynamic port replacement could also replace matching numeric literals in bundled JavaScript, including Bootstrap timing values. Port substitutions are now restricted to `localhost:` URLs, preserving the original library files while still configuring the requested ports. Fixes [#20030](https://github.com/microsoft/aspire/issues/20030). ([#20110](https://github.com/microsoft/aspire/pull/20110), backport of [#20031](https://github.com/microsoft/aspire/pull/20031), @bart-vmware, @JamesNK) - 🍎 **Updated the Aspire Homebrew cask for Homebrew 6.x** — Replaced deprecated cask URL and post-install syntax with the supported equivalents, resolving compatibility issues with current Homebrew while preserving install-channel metadata. ([#20119](https://github.com/microsoft/aspire/pull/20119), backport of [#19965](https://github.com/microsoft/aspire/pull/19965), @askpt, @joperezr) - 🧪 **Radius cloud-provider callback interfaces now carry the experimental diagnostic** — `IAwsRadiusProviderBuilder` and `IAzureRadiusProviderBuilder` are now marked with `ASPIRERADIUS003`, matching the existing `WithAwsProvider` and `WithAzureProvider` methods. Code referencing these interfaces directly must now acknowledge the same experimental API diagnostic. ([#19874](https://github.com/microsoft/aspire/pull/19874), @sebastienros) --- *Full Changelog: [v13.5.3...v13.5.4](https://github.com/microsoft/aspire/compare/v13.5.3...v13.5.4)* *Full commit: [9c1b401dd67746739044f68959cbf4d3d7af93a6](https://github.com/microsoft/aspire/commit/9c1b401dd67746739044f68959cbf4d3d7af93a6)* Commits viewable in [compare view](https://github.com/microsoft/aspire/compare/v13.5.3...v13.5.4). </details> Updated [AWSSDK.S3](https://github.com/aws/aws-sdk-net/) from 4.0.102.4 to 4.0.103.3. <details> <summary>Release notes</summary> _Sourced from [AWSSDK.S3's releases](https://github.com/aws/aws-sdk-net//releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/aws/aws-sdk-net//commits). </details> Updated [DiffPlex](https://github.com/mmanela/diffplex) from 1.7.2 to 1.9.0. <details> <summary>Release notes</summary> _Sourced from [DiffPlex's releases](https://github.com/mmanela/diffplex/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/mmanela/diffplex/commits). </details> Updated [dotnet-ef](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [dotnet-ef's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [MailKit](https://github.com/jstedfast/MailKit) from 4.17.0 to 4.18.0. <details> <summary>Release notes</summary> _Sourced from [MailKit's releases](https://github.com/jstedfast/MailKit/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/jstedfast/MailKit/commits). </details> Updated [Markdig](https://github.com/xoofx/markdig) from 0.40.0 to 0.45.0. <details> <summary>Release notes</summary> _Sourced from [Markdig's releases](https://github.com/xoofx/markdig/releases)._ ## 0.45.0 # Changes ## 🚀 Enhancements - Recognize supplementary characters (PR #913) by @tats-u - Use Dictionary.TryAdd instead of ContainsKey and indexer by reducing lookups. (PR #917) by @prozolic - Replace null checks with IsEmpty property for ReadOnlySpan<char> (PR #916) by @prozolic - Optimize PipeTable parsing: O(n²) → O(n) for 3.7x–85x speedup, enables 10K+ row tables (PR #922) by @Mpdreamz **Full Changelog**: [0.44.0...0.45.0](https://github.com/xoofx/markdig/compare/0.44.0...0.45.0) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> ## 0.44.0 # Changes ## 🧰 Misc - feat(link-helper): improve ASCII normalization handling (PR #911) by @mos379 - Test netstandard (PR #915) by @MihaZupan - Use central package management (fb698598) **Full Changelog**: [0.43.0...0.44.0](https://github.com/xoofx/markdig/compare/0.43.0...0.44.0) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> ## 0.43.0 # Changes ## ✨ New Features - Add a basic fuzzing project (PR #903) by @MihaZupan ## 🐛 Bug Fixes - Fix for table depth error when cell contains backticks (PR #891) by @phillip-haydon - Fix issue where an inline code block that spans multiple lines doesn't parse correctly (PR #893) by @phillip-haydon - Remove leading newline in block attributes (PR #896) by @Asttear - Fix IndexOutOfRangeException in CodeInlineParser (PR #900) by @MihaZupan - Fix build warnings (PR #899) by @MihaZupan - Fix edge cases in EmphasisInlineParser (PR #902) by @MihaZupan - Fix pipe table parsing with a leading paragraph (PR #905) by @MihaZupan ## 🚀 Enhancements - add options for link inline (PR #894) by @danielklecha - Move sln to slnx (PR #901) by @MihaZupan - Lazily allocate storage for ProcessInlinesBegin/End delegates on Blocks (PR #906) by @MihaZupan - Add another test for pipe tables (PR #907) by @MihaZupan **Full Changelog**: [0.42.0...0.43.0](https://github.com/xoofx/markdig/compare/0.42.0...0.43.0) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> ## 0.42.0 # Changes ## 🐛 Bug Fixes - Fixes issue #845 (PR #888) by @prozolic ## 🚀 Enhancements - Add support for a table without an extra new line before it (PR #885) by @dannyp32 - Add source position tracking for grid tables (PR #883) by @messani **Full Changelog**: [0.41.3...0.42.0](https://github.com/xoofx/markdig/compare/0.41.3...0.42.0) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> ## 0.41.3 # Changes ## 🐛 Bug Fixes - Fixes #878: RoundtripRenderer: render indent and 0 blocks for ordered lists (PR #879) by @stylefish ## 📚 Documentation - Update readme.md (PR #877) by @Mertsch **Full Changelog**: [0.41.2...0.41.3](https://github.com/xoofx/markdig/compare/0.41.2...0.41.3) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> ## 0.41.2 # Changes ## 🐛 Bug Fixes - Fix #872 by reserve null title string. (PR #876) by @Akarinnnnn **Full Changelog**: [0.41.1...0.41.2](https://github.com/xoofx/markdig/compare/0.41.1...0.41.2) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> ## 0.41.1 # Changes ## 🐛 Bug Fixes - Fix bug in `Markdown.ToPlainText` with code blocks (PR #869) by @prozolic **Full Changelog**: [0.41.0...0.41.1](https://github.com/xoofx/markdig/compare/0.41.0...0.41.1) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> ## 0.41.0 # Changes ## ✨ New Features - Add AutoLinkOptions.AllowDomainWithoutPeriod (PR #859) by @JamesNK ## 🐛 Bug Fixes - chore: update repository's github path (PR #861) by @Meir017 ## 🚀 Enhancements - Replace encoding polyfill with NET5+ one. (PR #851) by @Akarinnnnn - Implemented better indent control in TextRendererBase (PR #838) by @Melodi17 - A couple perf improvements (PR #864) by @MihaZupan - Infer pipe table column widths from separator row (PR #863) by @Amberg - Improve Alert parsing perf (PR #866) by @MihaZupan - Update to CommonMark 0.31.2 (PR #867) by @MihaZupan ## 🏭 Tests - Update tests (09a4b81a) ## 📚 Documentation - Fix `MathInline` is called "math block" (PR #865) by @RamType0 ## 📦 Dependencies - Update dependencies NuGet (5b323913) **Full Changelog**: [0.40.0...0.41.0](https://github.com/xoofx/markdig/compare/0.40.0...0.41.0) <sub>Published with [dotnet-releaser](https://github.com/xoofx/dotnet-releaser/)</sub> Commits viewable in [compare view](https://github.com/xoofx/markdig/compare/0.40.0...0.45.0). </details> Updated [Microsoft.AspNetCore.Authentication.JwtBearer](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Authentication.JwtBearer's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.AspNetCore.Identity.EntityFrameworkCore](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Identity.EntityFrameworkCore's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.AspNetCore.Mvc.Testing](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.Mvc.Testing's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.AspNetCore.OpenApi](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.OpenApi's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.AspNetCore.SignalR.StackExchangeRedis](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.AspNetCore.SignalR.StackExchangeRedis's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.EntityFrameworkCore](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.EntityFrameworkCore.Design](https://github.com/dotnet/dotnet) from 10.0.9 to 10.0.12. <details> <summary>Release notes</summary> _Sourced from [Microsoft.EntityFrameworkCore.Design's releases](https://github.com/dotnet/dotnet/releases)._ No release notes found for this version range. Commits viewable in [compare view](https://github.com/dotnet/dotnet/commits). </details> Updated [Microsoft.Extensions.Caching.Hybrid](https://github.com/dotnet/extensions) from 10.7.0 to 10.10.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Caching.Hybrid's releases](https://github.com/dotnet/extensions/releases)._ ## 10.10.0 This month's release focuses on AI package reliability: closing gaps in evaluation scoring, hardening OpenAI image-option handling, and removing the deprecated OpenAI Assistants API support. ## Experimental API Changes ### Removed Experimental APIs * OpenAI Assistants experimental APIs removed (was experimental under `OPENAI001`) #7724 ## What's Changed ### AI * Remove OpenAI Assistants API support #7724 by @jozkee (co-authored by @Copilot) * Update OpenAI package version to 2.13.0 #7726 by @jozkee * OpenAI: Avoid null implicit conversions for image options #7727 by @jozkee (co-authored by @Copilot) ### AI Evaluation * Fail closed when a quality metric has no valid score #7735 by @thaildhe172591 * Validate path segments in Azure storage result store and response cache #7718 by @Lroca88 ## Repository Infrastructure Updates * Add TfxInstaller for publishing #7695 by @peterwaltonwork * Bump PowerShell from 7.6.4 to 7.6.5 #7702 * [Infrastructure] Update vulnerable npm dependencies #7705 by @wtgodbe * Add Node installation for TfxInstaller #7703 by @peterwaltonwork * Publish VSIX using publish task instead of output #7711 by @peterwaltonwork * Bump dotnet-coverage from 18.9.0 to 18.10.0 #7708 * Do not validate extension during publish step #7725 by @peterwaltonwork * Add skill for upgrading OpenAI #7728 by @jozkee * Fix source indexer stage #7694 by @jjonescz ## Acknowledgements * @Lroca88 made their first contribution in #7718 * @thaildhe172591 made their first contribution in #7735 * @ANcpLua submitted issue #7665 (resolved by #7735) * @jeffhandley @peterwald @shyamnamboodiripad reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.9.0...v10.10.0 ## 10.9.0 Version 10.9.0 is headlined by changes in these areas: * **AI:** New experimental routing APIs center on the abstract `RoutingChatClient` base class, with `SemanticRoutingChatClient` as a concrete semantic-routing implementation. Separately, the abstract `FailoverChatClient` specialization and its concrete `OrderedFailoverChatClient` implementation add failover routing. * **AI Evaluation:** The generated report gains redesigned Overview, Cases, History, and Comparison views. * **ASP.NET Core and HTTP diagnostics:** The release adds HTTP request latency log enrichment and fixes configuration binding, response-body logging, request-path redaction, and resilience package version handling. * **Source-generated logging and service discovery:** Fixes cover classification type qualification, thread-local state cleanup, and DNS query suffix handling. ## Experimental API Changes ### New Experimental APIs * New experimental API: HTTP request latency log enrichment (`EXTEXP0013`) #7602 * New experimental API: Chat client routing and failover (`MEAI001`) #7662 ## What's Changed ### AI (`Microsoft.Extensions.AI`, `Microsoft.Extensions.AI.Abstractions`, and `Microsoft.Extensions.AI.OpenAI`) * Add extensible chat client routing #7662 by @joshuajyue (co-authored by @Copilot) * Pass the request's options to the selected client #7685 by @joshuajyue (co-authored by @jozkee @Copilot) * AI.Abstractions: fix ExcludeFromSchema dropped under concurrent AIFunction creation #7677 by @jozkee (co-authored by @Copilot) * Cap OpenAI dependency version ([b10f9c0](https://github.com/dotnet/extensions/commit/b10f9c0a081b5dbb7755b8f5592e1d3c3f550a3a)) by @jeffhandley (co-authored by @Copilot) **Note: Microsoft.Extensions.AI.OpenAI constrains its dependency for OpenAI to 2.12.x, preventing OpenAI updates to 2.13.0+ due to an incompatibility. We expect to release Microsoft.Extensions.AI.OpenAI version 10.9.1 during the week of August 17 to address this issue.** ### HTTP Resilience and Diagnostics (`Microsoft.Extensions.Http.Resilience` and `Microsoft.Extensions.Http.Diagnostics`) * Fix Grpc.Net.ClientFactory version range check - Fixes #7565 #7566 by @Ghost93 * Fix response body logging under debugger #7678 by @Rimobul * Redact outgoing path when route is unknown #7687 by @Rimobul * Fix HTTP client logging config binding #7691 by @Rimobul ### ASP.NET Core Extensions (`Microsoft.AspNetCore.Diagnostics.Middleware`) * Rename HttpLatencyTelemetry extensions class and drop redundant TFM guard #7645 by @EasyL0ver (co-authored by @Copilot) * Add HTTP request latency log enricher (experimental) #7602 by @EasyL0ver (co-authored by @Copilot) ### Logging Source Generator (`Microsoft.Gen.Logging`) * [Microsoft.Gen.Logging] Clear thread-local state when logging throws #7682 by @Rimobul * [Microsoft.Gen.Logging] Fully qualify classification types #7689 by @Rimobul ### AI Evaluation (`Microsoft.Extensions.AI.Evaluation.Reporting`) * [Microsoft.Extensions.AI.Evaluation.Reporting] Evaluation report redesign #7609 by @grafanaKibana ### Project Templates (`Microsoft.McpServer.ProjectTemplates`) * Remove MCP server project template #7680 by @jeffhandley (co-authored by @Copilot) ... (truncated) ## 10.8.4 This servicing update refreshes the .NET AI project templates ahead of the July 30, 2026 retirement of GitHub Models — removing the GitHub Models provider option and updating template dependencies. As a result, both the AI Chat Web (`aichatweb`) and AI Agent Web API (`aiagent-webapi`) templates now **require** the AI service provider to be chosen explicitly via `--provider`; there is no longer a default. One of the following must be selected: - `--provider azureopenai` — Azure OpenAI - `--provider ollama` — Ollama (for local development) - `--provider openai` — OpenAI Platform ## Packages in this release | Package | Version | |---|---| | Microsoft.Extensions.AI.Templates | 10.8.4-preview.3.26379.3 | | Microsoft.Agents.AI.ProjectTemplates | 1.13.0-preview.1.26379.3 | ## What's Changed ### Project templates - **Removed the GitHub Models provider** from the AI Chat Web and AI Agent Web API templates, ahead of [GitHub Models being fully retired on July 30, 2026](https://github.blog/changelog/2026-07-01-github-models-is-being-fully-retired-on-july-30-2026/). The `--provider` option is now required with no default ([#7667](https://github.com/dotnet/extensions/pull/7667)). - Updated AI template dependencies — bumped `Aspire.Hosting.AppHost` to `13.4.6` and `CommunityToolkit.VectorData.SqliteVec` to `1.0.0-preview.4` (aligned `System.Linq.AsyncEnumerable` to `10.0.9`), replacing earlier workaround package pins ([#7639](https://github.com/dotnet/extensions/pull/7639)). ## Full Changelog - https://github.com/dotnet/extensions/compare/v10.8.3...v10.8.4 ## 10.8.3 ## Packages in this release | Package | Version | |---|---| | Microsoft.Extensions.AI | 10.8.3 | | Microsoft.Extensions.AI.Abstractions | 10.8.3 | | Microsoft.Extensions.AI.OpenAI | 10.8.3 | ## Experimental API Changes ### Experimental API behavior updates - Updated serialization behavior for experimental `ToolApprovalRequestContent.RequiresConfirmation` so it no longer leaks into consumer source-generated `AIContent` JSON metadata unless approval APIs are intentionally used ([#7659](https://github.com/dotnet/extensions/pull/7659)). ## What's Changed ### AI abstractions and serialization - Fixed MEAI001 leakage from `RequiresConfirmation` in source-generated `AIContent` contexts by using an internal JSON-included backing member while keeping the public experimental member ignored for source-generation metadata ([#7659](https://github.com/dotnet/extensions/pull/7659)). ## Test Improvements - Added stabilization regression coverage to verify consumer source-generated `List<AIContent>` contexts compile and round-trip without requiring MEAI001 suppression ([#7659](https://github.com/dotnet/extensions/pull/7659)). ## Full Changelog - https://github.com/dotnet/extensions/compare/v10.8.2...v10.8.3 ## 10.8.2 This servicing release updates Microsoft.Extensions.VectorData.ConformanceTests to 10.8.2 and includes targeted test framework migration fixes. ## Packages in this release | Package | Version | Note | |---------|---------|---------| | Microsoft.Extensions.VectorData.Abstractions | 10.8.2 | Published August 7, 2026 | | Microsoft.Extensions.VectorData.ConformanceTests | 10.8.2 | | **Update: August 7, 2026** The Microsoft.Extensions.VectorData.Abstractions package was initially excluded from this release by mistake. Because Microsoft.Extensions.VectorData.ConformanceTests has a dependency on Microsoft.Extensions.VectorData.Abstractions, that led to failures when updating to Microsoft.Extensions.VectorData.ConformanceTests 10.8.2. Microsoft.Extensions.VectorData.Abstractions was published August 7, 2026 to resolve that issue. ## What's Changed ### AI * Move Microsoft.Extensions.VectorData.ConformanceTests to xUnit 3 #7636 by @adamsitnik (co-authored by @Copilot) ## Acknowledgements * @roji reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.8.1...v10.8.2 ## 10.8.1 This servicing release updates the Microsoft.Extensions.AI, Microsoft.Extensions.AI.Abstractions, and Microsoft.Extensions.AI.OpenAI packages to 10.8.1 with two targeted fixes: correct tool-call/tool-result ordering when resuming approval-gated functions with service-managed chat history, and preservation of the OpenAI Responses reasoning item id for stateless (store=false) encrypted reasoning. ## Packages in this release | Package | Version | |---------|---------| | Microsoft.Extensions.AI | 10.8.1 | | Microsoft.Extensions.AI.Abstractions | 10.8.1 | | Microsoft.Extensions.AI.OpenAI | 10.8.1 | ## What's Changed ### AI * Fix FICC tool_calls/tool ordering with approvals and service-managed chat history #7617 by @westey-m * Roundtrip OpenAI Responses reasoning item id for stateless (store=false) encrypted reasoning #7629 by @rogerbarreto (co-authored by @tarekgh) ## Acknowledgements * @jozkee reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.8.0...v10.8.1 ## 10.8.0 This release adds new experimental APIs to Microsoft.Extensions.AI.Abstractions and updates the OpenAI dependency to 2.12.0, alongside documentation, test, and repository maintenance. ## Experimental API Changes ### New Experimental APIs * New experimental API: `AIFunctionNameAttribute` and `AIParameterNameAttribute` #7610 by @jozkee (co-authored by @jeffhandley @Copilot) * New experimental API: `ToolApprovalRequestContent.RequiresConfirmation` (`MEAI001`) #7549 by @javiercn (co-authored by @Copilot) ## What's Changed ### AI * Upgrade OpenAI dependency to 2.12.0 #7608 by @jozkee (co-authored by @Copilot) * Auto-detect audio format in OpenAISpeechToTextClient #7575 by @jozkee (co-authored by @Copilot) * Fix ImageGeneratingChatClient duplicating preceding content and dropping following content #7624 by @jozkee (co-authored by @Copilot) ### Vector Data * Make all test methods virtual in VectorData.ConformanceTests #7606 by @adamsitnik (co-authored by @Copilot) ## Documentation Updates * Remove links to ai-samples repo #7574 by @gewarren * Fix up docs with Copilot (MEVD) #7597 by @gewarren * Fix up docs with Copilot (M.E.ServiceDiscovery) #7598 by @gewarren (co-authored by @Copilot) * Fix up docs with Copilot (MEAI) #7600 by @gewarren * Fix up docs with Copilot #7601 by @gewarren ## Test Improvements * Fix flaky StampedeTests and harden related test waits #7572 by @jeffhandley (co-authored by @Copilot) * Fix SQLitePCLRaw.lib.e_sqlite3 vulnerability by replacing SemanticKernel connectors with CommunityToolkit #7579 by @adamsitnik (co-authored by @Copilot) * Removing SemanticKernel Connectors dependency and replacing it #7584 by @adamsitnik (co-authored by @Copilot) * Migrate to xUnit v3 #7607 by @adamsitnik (co-authored by @shyamnamboodiripad @Copilot) ## Repository Infrastructure Updates * Update OTel GenAI conventions skill for standalone semconv-genai repo #7519 by @jeffhandley (co-authored by @Copilot) * Bump dotnet-coverage from 18.7.0 to 18.8.0 #7552 * [main] Update dependencies from dotnet/arcade #7559 * Fix transitive MessagePack vulnerability in AI template AppHost projects #7561 by @adamsitnik (co-authored by @Copilot) * Bump esbuild, @vitejs/plugin-react and vite in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7564 * Bump tmp from 0.2.6 to 0.2.7 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7569 * Bump js-yaml from 4.1.1 to 4.2.0 in /src/Libraries/Microsoft.Extensions.AI.Evaluation.Reporting/TypeScript #7570 * Bump PowerShell from 7.6.2 to 7.6.3 #7576 * Remove duplicate 'WebAPI' classification from template #7577 by @danroth27 * [main] Update dependencies from dotnet/arcade #7590 * Eliminate redundant Correctness CI stage by merging into Build #7594 by @adamsitnik (co-authored by @Copilot) * Update Agent Framework to 1.13.0 #7613 by @jeffhandley (co-authored by @Copilot) ... (truncated) Commits viewable in [compare view](https://github.com/dotnet/extensions/compare/v10.7.0...v10.10.0). </details> Updated [Microsoft.Extensions.Http.Resilience](https://github.com/dotnet/extensions) from 10.9.0 to 10.10.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.Http.Resilience's releases](https://github.com/dotnet/extensions/releases)._ ## 10.10.0 This month's release focuses on AI package reliability: closing gaps in evaluation scoring, hardening OpenAI image-option handling, and removing the deprecated OpenAI Assistants API support. ## Experimental API Changes ### Removed Experimental APIs * OpenAI Assistants experimental APIs removed (was experimental under `OPENAI001`) #7724 ## What's Changed ### AI * Remove OpenAI Assistants API support #7724 by @jozkee (co-authored by @Copilot) * Update OpenAI package version to 2.13.0 #7726 by @jozkee * OpenAI: Avoid null implicit conversions for image options #7727 by @jozkee (co-authored by @Copilot) ### AI Evaluation * Fail closed when a quality metric has no valid score #7735 by @thaildhe172591 * Validate path segments in Azure storage result store and response cache #7718 by @Lroca88 ## Repository Infrastructure Updates * Add TfxInstaller for publishing #7695 by @peterwaltonwork * Bump PowerShell from 7.6.4 to 7.6.5 #7702 * [Infrastructure] Update vulnerable npm dependencies #7705 by @wtgodbe * Add Node installation for TfxInstaller #7703 by @peterwaltonwork * Publish VSIX using publish task instead of output #7711 by @peterwaltonwork * Bump dotnet-coverage from 18.9.0 to 18.10.0 #7708 * Do not validate extension during publish step #7725 by @peterwaltonwork * Add skill for upgrading OpenAI #7728 by @jozkee * Fix source indexer stage #7694 by @jjonescz ## Acknowledgements * @Lroca88 made their first contribution in #7718 * @thaildhe172591 made their first contribution in #7735 * @ANcpLua submitted issue #7665 (resolved by #7735) * @jeffhandley @peterwald @shyamnamboodiripad reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.9.0...v10.10.0 Commits viewable in [compare view](https://github.com/dotnet/extensions/compare/v10.9.0...v10.10.0). </details> Updated [Microsoft.Extensions.ServiceDiscovery](https://github.com/dotnet/extensions) from 10.9.0 to 10.10.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.Extensions.ServiceDiscovery's releases](https://github.com/dotnet/extensions/releases)._ ## 10.10.0 This month's release focuses on AI package reliability: closing gaps in evaluation scoring, hardening OpenAI image-option handling, and removing the deprecated OpenAI Assistants API support. ## Experimental API Changes ### Removed Experimental APIs * OpenAI Assistants experimental APIs removed (was experimental under `OPENAI001`) #7724 ## What's Changed ### AI * Remove OpenAI Assistants API support #7724 by @jozkee (co-authored by @Copilot) * Update OpenAI package version to 2.13.0 #7726 by @jozkee * OpenAI: Avoid null implicit conversions for image options #7727 by @jozkee (co-authored by @Copilot) ### AI Evaluation * Fail closed when a quality metric has no valid score #7735 by @thaildhe172591 * Validate path segments in Azure storage result store and response cache #7718 by @Lroca88 ## Repository Infrastructure Updates * Add TfxInstaller for publishing #7695 by @peterwaltonwork * Bump PowerShell from 7.6.4 to 7.6.5 #7702 * [Infrastructure] Update vulnerable npm dependencies #7705 by @wtgodbe * Add Node installation for TfxInstaller #7703 by @peterwaltonwork * Publish VSIX using publish task instead of output #7711 by @peterwaltonwork * Bump dotnet-coverage from 18.9.0 to 18.10.0 #7708 * Do not validate extension during publish step #7725 by @peterwaltonwork * Add skill for upgrading OpenAI #7728 by @jozkee * Fix source indexer stage #7694 by @jjonescz ## Acknowledgements * @Lroca88 made their first contribution in #7718 * @thaildhe172591 made their first contribution in #7735 * @ANcpLua submitted issue #7665 (resolved by #7735) * @jeffhandley @peterwald @shyamnamboodiripad reviewed pull requests **Full Changelog**: https://github.com/dotnet/extensions/compare/v10.9.0...v10.10.0 Commits viewable in [compare view](https://github.com/dotnet/extensions/compare/v10.9.0...v10.10.0). </details> Updated [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 18.7.0 to 18.10.1. <details> <summary>Release notes</summary> _Sourced from [Microsoft.NET.Test.Sdk's releases](https://github.com/microsoft/vstest/releases)._ ## 18.10.1 ## What's Changed * Isolate code coverage files in published output by @azat-msft in https://github.com/microsoft/vstest/pull/16476 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.10.0...v18.10.1 ## 18.10.0 ## What's Changed * Drop Mono fallback, run .NET Framework tests on Windows only by @nohwnd in https://github.com/microsoft/vstest/pull/16158 * Run Microsoft.Testing.Platform test apps under `vstest.console` and datacollector by @nohwnd in https://github.com/microsoft/vstest/pull/16201 * Fix test output eaten by MSBuild terminal logger by @nohwnd in https://github.com/microsoft/vstest/pull/16223 * Remove the experimental test session feature by @nohwnd in https://github.com/microsoft/vstest/pull/16231 * Skip a single bad executor instead of failing all executor loading by @nohwnd in https://github.com/microsoft/vstest/pull/16239 * Assert apartment state instead of using Clipboard in UI tests by @nohwnd in https://github.com/microsoft/vstest/pull/16270 * Surface test host crashes during protocol negotiation by @nohwnd in https://github.com/microsoft/vstest/pull/16285 * Pass the inferred target platform to the host in run settings by @nohwnd in https://github.com/microsoft/vstest/pull/16271 * Report raw invalid IsTargetPlatformInferred value, cover host x64 forcing by @nohwnd in https://github.com/microsoft/vstest/pull/16295 * Disable the MTP testhost by default (#16337) by @nohwnd in https://github.com/microsoft/vstest/pull/16341 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.9.0...v18.10.0 ## 18.9.0 ## What's Changed * Fix tilde/exclamation characters corrupted in TerminalLogger test output by @nohwnd in https://github.com/microsoft/vstest/pull/16046 * Make TranslationLayer Native AOT-compatible by @drewnoakes in https://github.com/microsoft/vstest/pull/16045 * Guard GenerateProgramFile target against UseWinUI/UseUwpTools evaluation order by @nohwnd in https://github.com/microsoft/vstest/pull/16072 * Add RequestingAssembly to AssemblyResolveEventArgs for binary compat by @nohwnd in https://github.com/microsoft/vstest/pull/16076 * Remove stale Microsoft.Extensions.FileSystemGlobbing binding redirect from testhost.x86 and datacollector by @Evangelink in https://github.com/microsoft/vstest/pull/16082 * Fix TRX attachment paths when LogFileName contains a subdirectory by @nohwnd in https://github.com/microsoft/vstest/pull/15791 * Fix missing dumps for .NET Framework child processes in NetClientHangDumper by @nohwnd in https://github.com/microsoft/vstest/pull/16098 * Fix data collection channels to use negotiated protocol version instead of V1 by @nohwnd in https://github.com/microsoft/vstest/pull/16096 * Fix race condition in BlameCollector: skip hang dump when testhost hasn't launched yet by @nohwnd in https://github.com/microsoft/vstest/pull/16065 * Replace TestSDKAutoGeneratedCode with ExcludeFromCodeCoverage in auto-generated Program files by @nohwnd in https://github.com/microsoft/vstest/pull/16101 * Include testhost process path in crash error messages by @nohwnd in https://github.com/microsoft/vstest/pull/16108 * Fix DataDriven test results being double-counted in TRX logger totals by @nohwnd in https://github.com/microsoft/vstest/pull/15766 * Fix datacollector crash visibility: replace Assert with throwable exceptions by @nohwnd in https://github.com/microsoft/vstest/pull/16048 * Add TreatErrorMessagesAsWarnings parameter to TRX logger by @nohwnd in https://github.com/microsoft/vstest/pull/16106 * Wait for testhost stderr to drain before reading its crash output by @nohwnd in https://github.com/microsoft/vstest/pull/16128 * Handle runtimeconfig.dev.json without additionalProbingPaths by @tmat in https://github.com/microsoft/vstest/pull/16166 * Suggest Microsoft.NET.Test.Sdk when a managed test project brings no testhost by @nohwnd in https://github.com/microsoft/vstest/pull/16169 * Fix x86 testhost loading mismatched x64 hostfxr (0x800700C1) when run via vstest.console.exe directly (#16151) by @azat-msft in https://github.com/microsoft/vstest/pull/16156 * Preserve the real exception (type + stack trace) when a test run aborts in BaseRunTests by @nohwnd in https://github.com/microsoft/vstest/pull/16167 ## New Contributors * @drewnoakes made their first contribution in https://github.com/microsoft/vstest/pull/16045 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.8.0...v18.9.0 ## 18.8.1 ## What's Changed * Fix protocol negotiation timeout when STJ reflection is disabled (18.8.1) by @nohwnd in https://github.com/microsoft/vstest/pull/16281 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.8.0...v18.8.1 ## 18.8.0 ## What's Changed * Migrate from Newtonsoft.Json to System.Text.Json / Jsonite (merge to main) by @nohwnd in https://github.com/microsoft/vstest/pull/15687 - For more detail refer to https://devblogs.microsoft.com/dotnet/vs-test-is-removing-its-newtonsoft-json-dependency/ * Create source-only filter package by @Youssef1313 in https://github.com/microsoft/vstest/pull/15638 * Add ARM64 msdia140.dll support to test platform packages by @nohwnd in https://github.com/microsoft/vstest/pull/15692 * Fix mutex cleanup crash on macOS/Linux by @nohwnd in https://github.com/microsoft/vstest/pull/15684 * Restrict artifact temp directory permissions on Unix by @nohwnd in https://github.com/microsoft/vstest/pull/15729 * Add support for filtering uncategorized tests with TestCategory=None by @Evangelink in https://github.com/microsoft/vstest/pull/15727 * Fix SCI binding failure in DTA hosts (main) by @nohwnd in https://github.com/microsoft/vstest/pull/15724 * Fix HTML logger parallel file collision by @nohwnd in https://github.com/microsoft/vstest/pull/15435 * Improve error message when testhost cannot be found by @nohwnd in https://github.com/microsoft/vstest/pull/16053 * Fix HTML logger exception on invalid XML chars in test display names by @nohwnd in https://github.com/microsoft/vstest/pull/16051 **Full Changelog**: https://github.com/microsoft/vstest/compare/v18.7.0...v18.8.0 Commits viewable in [compare view](https://github.com/microsoft/vstest/compare/v18.7.0...v18.10.1). </details> Updated [Microsoft.OpenApi](https://github.com/Microsoft/OpenAPI.NET) from 2.9.0 to 2.12.0. <details> <summary>Release notes</summary> _Sourced from [Microsoft.OpenApi's releases](https://github.com/Microsoft/OpenAPI.NET/releases)._ ## 2.12.0 ## [2.12.0](https://github.com/microsoft/OpenAPI.NET/compare/v2.11.0...v2.12.0) (2026-08-12) ### Features * adds deserialization of the example extension ([095ae3b](https://github.com/microsoft/OpenAPI.NET/commit/095ae3bbdf3c248ba18db17278889cf5a8faf01c)) * serialize license identifier as extension for earlier versions ([d5cdce8](https://github.com/microsoft/OpenAPI.NET/commit/d5cdce83cfc210806afbd8850bb5ebe14eef5116)) * serialize license identifier as extension for earlier versions ([fde38d8](https://github.com/microsoft/OpenAPI.NET/commit/fde38d8bec7af0304b0f522683ccda2d245cd860)) ### Bug Fixes * better nullability round-tripping ([7a25659](https://github.com/microsoft/OpenAPI.NET/commit/7a25659a1cdd544f6b4bcc8bf1ed9797882b5ced)) * bound YAML anchor/alias expansion to prevent OOM (billion laughs) ([#3000](https://github.com/microsoft/OpenAPI.NET/issues/3000)) ([a361360](https://github.com/microsoft/OpenAPI.NET/commit/a3613606a90d86d3e22454890c694fbb854f4bc9)) * bound YAML anchor/alias expansion to prevent OOM (billion laughs) ([#3000](https://github.com/microsoft/OpenAPI.NET/issues/3000)) ([4db9af0](https://github.com/microsoft/OpenAPI.NET/commit/4db9af07d112cdf45170b7a946f956ffe74fa14e)) * **library:** serialize multiple schema types as anyOf/oneOf for OpenAPI 3.0 ([6568896](https://github.com/microsoft/OpenAPI.NET/commit/6568896ccf14380e234bae481a83be2d58d7c0cb)) * marks deprecated properties from the specification as obsolete ([26aba69](https://github.com/microsoft/OpenAPI.NET/commit/26aba69cd9c7ab1ecb8b1c61dd0094d291980af4)) * marks deprecated properties from the specification as obsolete ([abc5301](https://github.com/microsoft/OpenAPI.NET/commit/abc5301a82cb913fea696aa1248a2e17b317ce10)) * **schema:** serialize compatibility examples from examples list ([be57a7c](https://github.com/microsoft/OpenAPI.NET/commit/be57a7c4cf1e4ae2025b987520316420c897cb46)) * serialize examples as extension in v2/v3 ([d27141b](https://github.com/microsoft/OpenAPI.NET/commit/d27141b5203e5895f0fb812b913dd7621274e6a3)) ## 2.11.0 ## [2.11.0](https://github.com/microsoft/OpenAPI.NET/compare/v2.10.0...v2.11.0) (2026-07-15) ### Features * adds support for anchor and id external resolution ([557bd6a](https://github.com/microsoft/OpenAPI.NET/commit/557bd6a8ca81e80f9f305aca3396e0e2fb45c09d)) * adds support for anchor and id external resolution ([4138e47](https://github.com/microsoft/OpenAPI.NET/commit/4138e478cc6e8ceb9d371ac3a4848887c80ec16f)) * **schema:** resolve bare $dynamicRef via $dynamicAnchor index ([#2913](https://github.com/microsoft/OpenAPI.NET/issues/2913)) ([baf8428](https://github.com/microsoft/OpenAPI.NET/commit/baf8428f488b0f1de8cb91b29c4f073f808f2ffe)) * **schema:** resolve bare $dynamicRef via $dynamicAnchor index ([#2913](https://github.com/microsoft/OpenAPI.NET/issues/2913)) ([a139f83](https://github.com/microsoft/OpenAPI.NET/commit/a139f83981b251315b55ad9a4d64756a5dead335)) * support relative URI resolution in $dynamicRef ([#2928](https://github.com/microsoft/OpenAPI.NET/issues/2928)) ([#2945](https://github.com/microsoft/OpenAPI.NET/issues/2945)) ([6091f5a](https://github.com/microsoft/OpenAPI.NET/commit/6091f5a799711f822f864ed67995cd518fd30e2e)) * support relative URI resolution in $dynamicRef ([#2928](https://github.com/microsoft/OpenAPI.NET/issues/2928)) ([#2945](https://github.com/microsoft/OpenAPI.NET/issues/2945)) ([a8688dc](https://github.com/microsoft/OpenAPI.NET/commit/a8688dc59ab69060e5413e5ac2f15430bd96e40f)) ### Bug Fixes * adds explicit error message for invalid json pointers ([#2955](https://github.com/microsoft/OpenAPI.NET/issues/2955)) ([a304e56](https://github.com/microsoft/OpenAPI.NET/commit/a304e5646f4ccec388892238ce475945eb2af1b8)) * differentiate unset value from null value in OpenApiSchema.Const ([#2936](https://github.com/microsoft/OpenAPI.NET/issues/2936)) ([a8787af](https://github.com/microsoft/OpenAPI.NET/commit/a8787af57769821ee963be773be0b984a5078402)) * differentiate unset value from null value in OpenApiSchema.Const ([#2936](https://github.com/microsoft/OpenAPI.NET/issues/2936)) ([e08570f](https://github.com/microsoft/OpenAPI.NET/commit/e08570f99174b22e33775920212e478aac14df7c)) * handle nullability more accurately during serialization for 3.0/2.0 ([#2933](https://github.com/microsoft/OpenAPI.NET/issues/2933)) ([bc11356](https://github.com/microsoft/OpenAPI.NET/commit/bc113563d174e6a6b1220b7e58f3b1c12e5a3f6f)) * handle nullability more accurately during serialization for 3.0/2.0 ([#2933](https://github.com/microsoft/OpenAPI.NET/issues/2933)) ([310b6e2](https://github.com/microsoft/OpenAPI.NET/commit/310b6e29b3a17615efd7a38bbf5f73427cdec6e8)) ## 2.10.0 ## [2.10.0](https://github.com/microsoft/OpenAPI.NET/compare/v2.9.0...v2.10.0) (2026-07-03) ### Features * add JsonConverter for OpenApiSchema System.Text.Json serialization ([#2915](https://github.com/microsoft/OpenAPI.NET/issues/2915)) ([465521b](https://github.com/microsoft/OpenAPI.NET/commit/465521ba723ea9377d6838395d58e7212d64ece7)) * **library:** support schema keywords on references ([2749463](https://github.com/microsoft/OpenAPI.NET/commit/2749463f1ec1d452ba2334876d32466ea45ee8d1)), closes [#2903](https://github.com/microsoft/OpenAPI.NET/issues/2903) ### Bug Fixes * Don't silently skip null assignment to OpenApiDocument.Tags ([#2917](https://github.com/microsoft/OpenAPI.NET/issues/2917)) ([6a45a82](https://github.com/microsoft/OpenAPI.NET/commit/6a45a826e095d198605b340c50d46c066eed72ad)) * handling of nullable enums for 3.0 ([#2920](https://github.com/microsoft/OpenAPI.NET/issues/2920)) ([f4778e0](https://github.com/microsoft/OpenAPI.NET/commit/f4778e024e6bf033a4b6c4b90ea6636de712f826)) * **library:** keep v3 schema references ref-only ([8d811c3](https://github.com/microsoft/OpenAPI.NET/commit/8d811c3e76a8963be6e7a605b80c98d0ea0c63a5)) * preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS 3.1+ ([#2896](https://github.com/microsoft/OpenAPI.NET/issues/2896)) ([fb20d46](https://github.com/microsoft/OpenAPI.NET/commit/fb20d460ffe95505847da5a6e4c6fc065e41d9d1)) * preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS 3.1+ ([#2896](https://github.com/microsoft/OpenAPI.NET/issues/2896)) ([c79a83e](https://github.com/microsoft/OpenAPI.NET/commit/c79a83e74a0a41367c37f050d78d3e0ace838bc0)) * use async method for crypto flush ([677b519](https://github.com/microsoft/OpenAPI.NET/commit/677b5197d9c4f7de2122852ad49d5012f7082e71)) Commits viewable in [compare view](https://github.com/Microsoft/OpenAPI.NET/compare/v2.9.0...v2.12.0). </details> Updated [Microsoft.OpenApi](https://github.com/Microsoft/OpenAPI.NET) from 2.9.0 to 2.12.2. <details> <summary>Release notes</summary> _Sourced from [Microsoft.OpenApi's releases](https://github.com/Microsoft/OpenAPI.NET/releases)._ ## 2.12.2 ## [2.12.2](https://github.com/microsoft/OpenAPI.NET/compare/v2.12.1...v2.12.2) (2026-08-20) ### Bug Fixes * duplicate schema example when serializing to v2 ([#3046](https://github.com/microsoft/OpenAPI.NET/issues/3046)) ([a6366be](https://github.com/microsoft/OpenAPI.NET/commit/a6366be831a462a1470a4190888b571c3ff12f2c)) ## 2.12.1 ## [2.12.1](https://github.com/microsoft/OpenAPI.NET/compare/v2.12.0...v2.12.1) (2026-08-19) ### Bug Fixes * circular ref guard ([#3033](https://github.com/microsoft/OpenAPI.NET/issues/3033)) ([#3039](https://github.com/microsoft/OpenAPI.NET/issues/3039)) ([406e6fd](https://github.com/microsoft/OpenAPI.NET/commit/406e6fd60475a3adfb850b735a59f10afee64c18)) * harden yaml parsing ([#3034](https://github.com/microsoft/OpenAPI.NET/issues/3034)) ([fdc5718](https://github.com/microsoft/OpenAPI.NET/commit/fdc5718a70607aa551ce9a00a03a812d3bc4c582)) ## 2.12.0 ## [2.12.0](https://github.com/microsoft/OpenAPI.NET/compare/v2.11.0...v2.12.0) (2026-08-12) ### Features * adds deserialization of the example extension ([095ae3b](https://github.com/microsoft/OpenAPI.NET/commit/095ae3bbdf3c248ba18db17278889cf5a8faf01c)) * serialize license identifier as extension for earlier versions ([d5cdce8](https://github.com/microsoft/OpenAPI.NET/commit/d5cdce83cfc210806afbd8850bb5ebe14eef5116)) * serialize license identifier as extension for earlier versions ([fde38d8](https://github.com/microsoft/OpenAPI.NET/commit/fde38d8bec7af0304b0f522683ccda2d245cd860)) ### Bug Fixes * better nullability round-tripping ([7a25659](https://github.com/microsoft/OpenAPI.NET/commit/7a25659a1cdd544f6b4bcc8bf1ed9797882b5ced)) * bound YAML anchor/alias expansion to prevent OOM (billion laughs) ([#3000](https://github.com/microsoft/OpenAPI.NET/issues/3000)) ([a361360](https://github.com/microsoft/OpenAPI.NET/commit/a3613606a90d86d3e22454890c694fbb854f4bc9)) * bound YAML anchor/alias expansion to prevent OOM (billion laughs) ([#3000](https://github.com/microsoft/OpenAPI.NET/issues/3000)) ([4db9af0](https://github.com/microsoft/OpenAPI.NET/commit/4db9af07d112cdf45170b7a946f956ffe74fa14e)) * **library:** serialize multiple schema types as anyOf/oneOf for OpenAPI 3.0 ([6568896](https://github.com/microsoft/OpenAPI.NET/commit/6568896ccf14380e234bae481a83be2d58d7c0cb)) * marks deprecated properties from the specification as obsolete ([26aba69](https://github.com/microsoft/OpenAPI.NET/commit/26aba69cd9c7ab1ecb8b1c61dd0094d291980af4)) * marks deprecated properties from the specification as obsolete ([abc5301](https://github.com/microsoft/OpenAPI.NET/commit/abc5301a82cb913fea696aa1248a2e17b317ce10)) * **schema:** serialize compatibility examples from examples list ([be57a7c](https://github.com/microsoft/OpenAPI.NET/commit/be57a7c4cf1e4ae2025b987520316420c897cb46)) * serialize examples as extension in v2/v3 ([d27141b](https://github.com/microsoft/OpenAPI.NET/commit/d27141b5203e5895f0fb812b913dd7621274e6a3)) ## 2.11.0 ## [2.11.0](https://github.com/microsoft/OpenAPI.NET/compare/v2.10.0...v2.11.0) (2026-07-15) ### Features * adds support for anchor and id external resolution ([557bd6a](https://github.com/microsoft/OpenAPI.NET/commit/557bd6a8ca81e80f9f305aca3396e0e2fb45c09d)) * adds support for anchor and id external resolution ([4138e47](https://github.com/microsoft/OpenAPI.NET/commit/4138e478cc6e8ceb9d371ac3a4848887c80ec16f)) * **schema:** resolve bare $dynamicRef via $dynamicAnchor index ([#2913](https://github.com/microsoft/OpenAPI.NET/issues/2913)) ([baf8428](https://github.com/microsoft/OpenAPI.NET/commit/baf8428f488b0f1de8cb91b29c4f073f808f2ffe)) * **schema:** resolve bare $dynamicRef via $dynamicAnchor index ([#2913](https://github.com/microsoft/OpenAPI.NET/issues/2913)) ([a139f83](https://github.com/microsoft/OpenAPI.NET/commit/a139f83981b251315b55ad9a4d64756a5dead335)) * support relative URI resolution in $dynamicRef ([#2928](https://github.com/microsoft/OpenAPI.NET/issues/2928)) ([#2945](https://github.com/microsoft/OpenAPI.NET/issues/2945)) ([6091f5a](https://github.com/microsoft/OpenAPI.NET/commit/6091f5a799711f822f864ed67995cd518fd30e2e)) * support relative URI resolution in $dynamicRef ([#2928](https://github.com/microsoft/OpenAPI.NET/issues/2928)) ([#2945](https://github.com/microsoft/OpenAPI.NET/issues/2945)) ([a8688dc](https://github.com/microsoft/OpenAPI.NET/commit/a8688dc59ab69060e5413e5ac2f15430bd96e40f)) ### Bug Fixes * adds explicit error message for invalid json pointers ([#2955](https://github.com/microsoft/OpenAPI.NET/issues/2955)) ([a304e56](https://github.com/microsoft/OpenAPI.NET/commit/a304e5646f4ccec388892238ce475945eb2af1b8)) * differentiate unset value from null value in OpenApiSchema.Const ([#2936](https://github.com/microsoft/OpenAPI.NET/issues/2936)) ([a8787af](https://github.com/microsoft/OpenAPI.NET/commit/a8787af57769821ee963be773be0b984a5078402)) * differentiate unset value from null value in OpenApiSchema.Const ([#2936](https://github.com/microsoft/OpenAPI.NET/issues/2936)) ([e08570f](https://github.com/microsoft/OpenAPI.NET/commit/e08570f99174b22e33775920212e478aac14df7c)) * handle nullability more accurately during serialization for 3.0/2.0 ([#2933](https://github.com/microsoft/OpenAPI.NET/issues/2933)) ([bc11356](https://github.com/microsoft/OpenAPI.NET/commit/bc113563d174e6a6b1220b7e58f3b1c12e5a3f6f)) * handle nullability more accurately during serialization for 3.0/2.0 ([#2933](https://github.com/microsoft/OpenAPI.NET/issues/2933)) ([310b6e2](https://github.com/microsoft/OpenAPI.NET/commit/310b6e29b3a17615efd7a38bbf5f73427cdec6e8)) ## 2.10.0 ## [2.10.0](https://github.com/microsoft/OpenAPI.NET/compare/v2.9.0...v2.10.0) (2026-07-03) ### Features * add JsonConverter for OpenApiSchema System.Text.Json serialization ([#2915](https://github.com/microsoft/OpenAPI.NET/issues/2915)) ([465521b](https://github.com/microsoft/OpenAPI.NET/commit/465521ba723ea9377d6838395d58e7212d64ece7)) * **library:** support schema keywords on references ([2749463](https://github.com/microsoft/OpenAPI.NET/commit/2749463f1ec1d452ba2334876d32466ea45ee8d1)), closes [#2903](https://github.com/microsoft/OpenAPI.NET/issues/2903) ### Bug Fixes * Don't silently skip null assignment to OpenApiDocument.Tags ([#2917](https://github.com/microsoft/OpenAPI.NET/issues/2917)) ([6a45a82](https://github.com/microsoft/OpenAPI.NET/commit/6a45a826e095d198605b340c50d46c066eed72ad)) * handling of nullable enums for 3.0 ([#2920](https://github.com/microsoft/OpenAPI.NET/issues/2920)) ([f4778e0](https://github.com/microsoft/OpenAPI.NET/commit/f4778e024e6bf033a4b6c4b90ea6636de712f826)) * **library:** keep v3 schema references ref-only ([8d811c3](https://github.com/microsoft/OpenAPI.NET/commit/8d811c3e76a8963be6e7a605b80c98d0ea0c63a5)) * preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS 3.1+ ([#2896](https://github.com/microsoft/OpenAPI.NET/issues/2896)) ([fb20d46](https://github.com/microsoft/OpenAPI.NET/commit/fb20d460ffe95505847da5a6e4c6fc065e41d9d1)) * preserve JSON Schema 2020-12 keyword siblings on $ref schemas for OAS 3.1+ ([#2896](https://github.com/microsoft/OpenAPI.NET/issues/2896)) ([c79a83e](https://github.com/microsoft/OpenAPI.NET/commit/c79a83e74a0a41367c37f050d78d3e0ace838bc0)) * use async method for crypto flush ([677b519](https://github.com/microsoft/OpenAPI.NET/commit/677b5197d9c4f7de2122852ad49d5012f7082e71)) Commits viewable in [compare view](https://github.com/Microsoft/OpenAPI.NET/compare/v2.9.0...v2.12.2). </details> Updated [OpenTelemetry.Exporter.OpenTelemetryProtocol](https://github.com/open-telemetry/opentelemetry-dotnet) from 1.16.0 to 1.19.1. <details> <summary>Release notes</summary> _Sourced from [OpenTelemetry.Exporter.OpenTelemetryProtocol's releases](https://github.com/open-telemetry/opentelemetry-dotnet/releases)._ ## 1.19.1 For highlights and announcements pertaining to this release see: [Release Notes > 1.19.1](https://github.com/open-telemetry/opentelemetry-dotnet/blob/main/RELEASENOTES.md#1191). The following changes are from the previous release [1.19.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.19.0). * NuGet: [OpenTelemetry v1.19.1](https://www.nuget.org/packages/OpenTelemetry/1.19.1) * Fixed `NotSupportedException` thrown when building a `TracerProvider` or `MeterProvider` with a large number of wildcard source/meter patterns on `net8.0`, and a related `OutOfMemoryException` that could occur when many such providers were built over the lifetime of a process. ([#7788](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7788)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.19.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.19.1) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.19.1](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.19.1) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1/src/OpenTelemetry.Api.ProviderBuilderExtensions/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Console v1.19.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Console/1.19.1) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1/src/OpenTelemetry.Exporter.Console/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.InMemory v1.19.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.InMemory/1.19.1) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1/src/OpenTelemetry.Exporter.InMemory/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.OpenTelemetryProtocol v1.19.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.OpenTelemetryProtocol/1.19.1) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1/src/OpenTelemetry.Exporter.OpenTelemetryProtocol/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Exporter.Zipkin v1.19.1](https://www.nuget.org/packages/OpenTelemetry.Exporter.Zipkin/1.19.1) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1/src/OpenTelemetry.Exporter.Zipkin/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Extensions.Hosting v1.19.1](https://www.nuget.org/packages/OpenTelemetry.Extensions.Hosting/1.19.1) No notable changes. ... (truncated) ## 1.19.1-rc.1 The following changes are from the previous release [1.19.0](https://github.com/open-telemetry/opentelemetry-dotnet/releases/tag/core-1.19.0). * NuGet: [OpenTelemetry v1.19.1-rc.1](https://www.nuget.org/packages/OpenTelemetry/1.19.1-rc.1) * Fixed `NotSupportedException` thrown when building a `TracerProvider` or `MeterProvider` with a large number of wildcard source/meter patterns on `net8.0`, and a related `OutOfMemoryException` that could occur when many such providers were built over the lifetime of a process. ([#7788](https://github.com/open-telemetry/opentelemetry-dotnet/pull/7788)) See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1-rc.1/src/OpenTelemetry/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api v1.19.1-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api/1.19.1-rc.1) No notable changes. See [CHANGELOG](https://github.com/open-telemetry/opentelemetry-dotnet/blob/core-1.19.1-rc.1/src/OpenTelemetry.Api/CHANGELOG.md) for details. * NuGet: [OpenTelemetry.Api.ProviderBuilderExtensions v1.19.1-rc.1](https://www.nuget.org/packages/OpenTelemetry.Api.ProviderBuilderExtensions/1.19.1-rc.1) No notable changes. See [CHANG…
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Pull Request
Description
improved circular ref detection
Type of Change
Related Issue(s)
Changes Made
improved parsing perf
Testing
Checklist
Versions applicability
See the contributing guidelines for more information about how patches are applied across multiple versions.
Additional Notes